import axios from 'axios'

// 创建一个axios实例
const api = axios.create({
  baseURL: '/api', // 假设后端API的基础路径
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
api.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token')
    if (token) {
      config.headers['Authorization'] = `Bearer ${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  response => {
    return response.data
  },
  error => {
    return Promise.reject(error)
  }
)

// 民宿相关API
export const homestayApi = {
  // 获取所有民宿列表
  getHomestayList(params) {
    return api.get('/homestays', { params })
  },
  // 获取民宿详情
  getHomestayDetail(id) {
    return api.get(`/homestays/${id}`)
  },
  // 按条件搜索民宿
  searchHomestays(params) {
    return api.get('/homestays/search', { params })
  }
}

// 用户相关API
export const userApi = {
  // 用户登录
  login(data) {
    return api.post('/users/login', data)
  },
  // 用户注册
  register(data) {
    return api.post('/users/register', data)
  },
  // 获取用户信息
  getUserInfo() {
    return api.get('/users/profile')
  },
  // 更新用户信息
  updateUserInfo(data) {
    return api.put('/users/profile', data)
  }
}

// 预订相关API
export const bookingApi = {
  // 创建预订
  createBooking(data) {
    return api.post('/bookings', data)
  },
  // 获取用户的预订列表
  getUserBookings() {
    return api.get('/bookings/user')
  },
  // 取消预订
  cancelBooking(id) {
    return api.delete(`/bookings/${id}`)
  }
}

// 收藏相关API
export const favoriteApi = {
  // 收藏民宿
  addFavorite(homestayId) {
    return api.post('/favorites', { homestayId })
  },
  // 取消收藏
  removeFavorite(homestayId) {
    return api.delete(`/favorites/${homestayId}`)
  },
  // 获取用户收藏列表
  getUserFavorites() {
    return api.get('/favorites/user')
  }
}

export default {
  homestayApi,
  userApi,
  bookingApi,
  favoriteApi
} 